const util = require('../../../utils/util.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    //全局URL变量
    globalUrl:"",
    islogin:"",//是否登录
    isUpdate:true,//是否可以编辑
    token:"",//用户token
    authStatus:"未认证",
    isChecked: false,
    nickName:"",//临时姓名
    phone:"",//手机号
    stuNumber:"",//学号
    cardNumber:"",//身份证号
    stuImageUrl:[],//学生证图片URL数组
    cardImageUrl:[],//学生证图片URL数组

    rider:{
      name:"",//姓名
      phone:"",//手机号
      identificationStuNumber:"",//学生证号
      identificationStuImageUrl:"",//学生证图片URL数组
      identificationCardNumber:"",//学生证号
      identificationCardImageUrl:"",//学生证图片URL数组
    }
  },

  //同意协议的单选框
  toggleCheckbox: function () {
    this.setData({
      isChecked: !this.data.isChecked
    });
  },
  //学生证、身份证、提示信息函数
  tishiInfo(e){
    const id = e.currentTarget.dataset.id;
    switch(id){
      case "1":
        wx.showToast({
          title: '学生证照片，仅用于学生归属学校认证',
          icon: 'none'
        })
        break;
      case "2":
        wx.showToast({
          title: '身份证照片，仅用于学生身份认证',
          icon: 'none'
        })
        break;
    }

  },


  // 在页面中选择文件并上传
  chooseAndUploadFile(e) {
    wx.chooseMedia({
      count: 1,  // 选择图片的数量，这里设置为1
      mediaType:'mix',
      maxDuration: 30,
      sizeType: ['original', 'compressed'],  // 原图或压缩图
      sourceType: ['album', 'camera'],  // 从相册或相机选择
      camera:['camera','front'],
      success: (res) => {
        const newMedia = {
          tempFilePath: res.tempFiles[0].tempFilePath
        };
        // 此处可以获取到信息
        console.log("路径为:",newMedia.tempFilePath);
        this.uploadFile(e,newMedia.tempFilePath);
      }
    });
  },
  // 调用后端接口上传文件
  uploadFile(e,filePath) {
    //1.获取全局URL
    util.setGlobalData(this);
    const globalUrl = this.data.globalUrl;
    console.log("123",globalUrl);
    //2.获取用户token
    const userInfo = wx.getStorageSync('UserData');
    console.log("用户token",userInfo.token)
    //3.显示上传提示
    wx.showLoading({ title: 'Uploading...' });
    // 调用后端上传文件接口
    wx.uploadFile({
      url: globalUrl+'/fileoss/upload', // 后端上传文件接口地址
      filePath: filePath, // 文件临时路径
      name: 'file', // 后端接收文件的参数名
      header: {
        "token": userInfo.token,
      },
      success: (res) => {
        console.log("返回的数据为：",res.data); // 打印后端返回的数据
        // 隐藏上传提示
        wx.hideLoading();
        //判断是学生证还是身份证
        const ctag = e.currentTarget.dataset.tag;
        console.log("身份标识：",ctag);
        const indexId = e.currentTarget.dataset.index;
        console.log("索引信息：",indexId);
        switch(ctag){
          case "stu":
            if(indexId === "1"){
              // 获取 stuImageUrl 数组
              let newArray = this.data.stuImageUrl;
              // 修改数组中的某个元素，例如索引为 1 的元素
              newArray[0] = res.data;
              this.setData({
                stuImageUrl: newArray
              });
            }else{
              // 获取 stuImageUrl 数组
              let newArray = this.data.stuImageUrl;
              // 修改数组中的指定索引，例如索引为 2 的元素
              newArray[1] = res.data;
              this.setData({
                stuImageUrl: newArray
              });
            }
            break;
          case "card":
            if(indexId === "1"){
              // 获取 cardImageUrl 数组
              let newArray = this.data.cardImageUrl;
              // 修改数组中的某个元素，例如索引为 1 的元素
              newArray[0] = res.data;
              this.setData({
                cardImageUrl: newArray
              });
            }else{
              // 获取 cardImageUrl 数组
              let newArray = this.data.cardImageUrl;
              // 修改数组中的指定索引，例如索引为 2 的元素
              newArray[1] = res.data;
              this.setData({
                cardImageUrl: newArray
              });
            }
            break;
        }
        console.log("学生图片数组：",this.data.stuImageUrl)
        console.log("身份证图片数组：",this.data.cardImageUrl)
      },
      fail: (error) => {
        console.error(error);
        // 隐藏上传提示
        wx.hideLoading();
        // 处理上传失败的逻辑
        // ...
      }
    });
  },
  // 点击指定图片 完成预览
  previewImage: function (e) {
    // 自定义元素获取信息,获取当前点击的位置的控件的src的路径值
    const currentImage = e.currentTarget.dataset.src;
    console.log("进来了",currentImage)
    //通过获取到的路径值,实现图片预览
    const urls = [currentImage];
    wx.previewImage({
      current: currentImage,
      urls: urls
    });
  },


  //姓名输入框失去焦点时，执行
  nameInput: function(e) {
    this.setData({
      nickName: e.detail.value
    })
  },
  //手机输入框失去焦点时
  phoneInput: function(e) {
    this.setData({
      phone: e.detail.value
    })
  },
  //学生证号码输入框失去焦点时
  stuNumberInput: function(e) {
    this.setData({
      stuNumber: e.detail.value
    })
  },
  //身份证号输入框失去焦点时
  cardNumberInput: function(e) {
    this.setData({
      cardNumber: e.detail.value
    })
  },



  //提交按钮
  submit: function() {
    var nickName = this.data.nickName;
    console.log(nickName)
    var phone = this.data.phone;
    console.log(phone)
    var stuNumber = this.data.stuNumber;
    console.log(stuNumber)
    var cardNumber = this.data.cardNumber;
    console.log(cardNumber)
    
    if (nickName == "") {
      wx: wx.showToast({
        title: '请输入姓名',
        icon: 'none'
      })
      return false
    }
    else if (phone == "") {
      wx: wx.showToast({
        title: '请输入手机号码',
        icon: 'none'
      })
      return false
    }
    else if (stuNumber == "") {
      wx: wx.showToast({
        title: '请输入学号',
        icon: 'none'
      })
      return false
    }
    else if (cardNumber == "") {
      wx: wx.showToast({
        title: '请输入身份证号',
        icon: 'none'
      })
      return false
    }
    
    else {
      //处理输入后，点击保存的逻辑
      //获取用户的token
      const userInfo = wx.getStorageSync('UserData');
      // 获取小程序实例
      const app = getApp();
      // 获取全局变量
      const globalUrl = app.globalData.globalUrl;
      //const islogin = app.globalData.islogin;
      console.log(globalUrl)
      this.setData({
        globalUrl:globalUrl,
        'rider.name':nickName,
        'rider.phone':phone,
        'rider.identificationStuNumber':stuNumber,
        'rider.identificationCardNumber':cardNumber,
        'rider.identificationStuImageUrl':this.data.stuImageUrl.join(','),
        'rider.identificationCardImageUrl':this.data.cardImageUrl.join(','),
      })
      console.log("骑手对象为：",this.data.rider)
      // 将 addressInfo 对象转换为 JSON 字符串
      const riderJson = JSON.stringify(this.data.rider);
      console.log(riderJson)
      //3.显示上传提示
      wx.showLoading({ title: '提交中...' });
      //根据token获取请求
      wx.request({
        url: globalUrl+'/user/rider/ridersubmit',
        method: 'POST',
        header: {
          "token": userInfo.token,
        },
        data: this.data.rider,
        success: (response) => {
          // 隐藏上传提示
          wx.hideLoading();
          //来到此处，说明请求发送成功
          if(response.data.code === 200){ //成功添加地址列表到数据库
            console.log("骑手数据");
            console.log(response.data.data)
            wx.setStorageSync('authStatus', "审核中");
            // wx.navigateBack({
            //   data:1
            // })
            this.userAuthStatus();
          }else{
            wx.showToast({
              title: '当前网络繁忙，稍后再试！',
              icon: 'none'
            })
          }
        },
      });
    }
  },
  //重新提交
  resubmit: function() {
    var nickName = this.data.nickName;
    console.log(nickName)
    var phone = this.data.phone;
    console.log(phone)
    var stuNumber = this.data.stuNumber;
    console.log(stuNumber)
    var cardNumber = this.data.cardNumber;
    console.log(cardNumber)
    
    if (nickName == "") {
      wx: wx.showToast({
        title: '请输入姓名',
        icon: 'none'
      })
      return false
    }
    else if (phone == "") {
      wx: wx.showToast({
        title: '请输入手机号码',
        icon: 'none'
      })
      return false
    }
    else if (stuNumber == "") {
      wx: wx.showToast({
        title: '请输入学号',
        icon: 'none'
      })
      return false
    }
    else if (cardNumber == "") {
      wx: wx.showToast({
        title: '请输入身份证号',
        icon: 'none'
      })
      return false
    }
    
    else {
      //处理输入后，点击保存的逻辑
      //获取用户的token
      const userInfo = wx.getStorageSync('UserData');
      // 获取小程序实例
      const app = getApp();
      // 获取全局变量
      const globalUrl = app.globalData.globalUrl;
      //const islogin = app.globalData.islogin;
      console.log(globalUrl)
      this.setData({
        globalUrl:globalUrl,
        'rider.name':nickName,
        'rider.phone':phone,
        'rider.identificationStuNumber':stuNumber,
        'rider.identificationCardNumber':cardNumber,
        'rider.identificationStuImageUrl':this.data.stuImageUrl.join(','),
        'rider.identificationCardImageUrl':this.data.cardImageUrl.join(','),
      })
      console.log("骑手对象为：",this.data.rider)
      // 将 addressInfo 对象转换为 JSON 字符串
      const riderJson = JSON.stringify(this.data.rider);
      console.log(riderJson)
      //3.显示上传提示
      wx.showLoading({ title: '提交中...' });
      //根据token获取请求
      wx.request({
        url: globalUrl+'/user/rider/resubmit',
        method: 'POST',
        header: {
          "token": userInfo.token,
        },
        data: this.data.rider,
        success: (response) => {
          // 隐藏上传提示
          wx.hideLoading();
          //来到此处，说明请求发送成功
          if(response.data.code === 200){ //成功添加地址列表到数据库
            console.log("骑手数据");
            console.log(response.data.data)
            wx.setStorageSync('authStatus', "审核中");
            // wx.navigateBack({
            //   data:1
            // })
            this.userAuthStatus();
          }else{
            wx.showToast({
              title: '当前网络繁忙，稍后再试！',
              icon: 'none'
            })
          }
        },
      });
    }
  },

  /**
   * 生命周期函数--监听页面显示
   * 当用户点击骑手认证后，先判断用户的认证信息是否已经提交过认证
   */
  onReady() {
    this.userAuthStatus();
  },

  //判断用户是否已经认证
  userAuthStatus(){
    const authStatus = wx.getStorageSync('authStatus');
    console.log("获取到的用户是否已经提交：",authStatus)
    if(authStatus != "未认证"){
      //从home界面传递过来的userid
      const userid = wx.getStorageSync('userid');
      const userInfo = wx.getStorageSync('UserData');
      console.log("用户ID为：")
      console.log(userid)
      console.log(userInfo.token)
      // 获取小程序实例
      const app = getApp();
      // 获取全局变量
      const globalUrl = app.globalData.globalUrl;
      //const islogin = app.globalData.islogin;
      console.log(globalUrl)
      this.setData({
        globalUrl:globalUrl,
        token:userInfo.token
      })
      //根据token获取请求
      wx.request({
        url: globalUrl+'/user/rider/getUserAuthState',
        method: 'GET',
        header: {
          "token": userInfo.token,
        },
        success: (response) => {
          //来到此处，说明请求发送成功
          if(response.data.code === 200){ //成功请求到指定用户的骑手信息
            console.log("用户骑手信息：",response.data);
            console.log("用户骑手认证状态：",response.data.data.authStatus);
            //信息赋值
            this.setData({
              authStatus:response.data.data.authStatus,
              nickName:response.data.data.name,//临时姓名
              phone:response.data.data.phone,//手机号
              stuNumber:response.data.data.identificationStuNumber,//学号
              cardNumber:response.data.data.identificationCardNumber,//身份证号
              stuImageUrl:JSON.parse(response.data.data.identificationStuImageUrl),//学生证图片URL数组
              cardImageUrl:JSON.parse(response.data.data.identificationCardImageUrl),//学生证图片URL数组        
            })

            //如果骑手认证状态为：审核中和认证成功，则不可以编辑，即设置isUpdate为false
            if(response.data.data.authStatus === "审核中" || response.data.data.authStatus==="已认证"){
              console.log("用户状态为：",response.data.data.authStatus)
              this.setData({
                isUpdate:false,
              })
            }
            //如果是审核中、审核失败、认证成功，则进行信息的显示
            // if(response.data.data.authStatus === "审核中" || response.data.data.authStatus==="审核失败" || response.data.data.authStatus==="已认证"){
              
            // }
          }else{
            wx.showToast({
              title: '当前网络繁忙，稍后再试！',
              icon: 'none'
            })
          }
        },
      });
    }else{
      console.log("用户还没有认证",authStatus)
    }
  },





})